// house_pkg/pages/locate/index.ts
// 导入腾讯地图提供的 Javascript SDK
import qqMap from "../../../utils/qqMap"
Page({
  goBuilding(ev) {
    wx.navigateTo({
      // 从社区跳转楼栋页，并把小区名，传给楼栋页
      url: '/house_pkg/pages/building/index?point=' + ev.mark.point
    })
  },
  onLoad() {
    this.getLocation()
  },
  // 用户进入到这个页面的时候，使用wx.getLocation 在页面加载所在位置的经纬度
  async getLocation() {
    // 用户所在位置的经纬度
    const { latitude, longitude } = await wx.getLocation()
    // 查看经纬度
    console.log(latitude, longitude);
    this.getPoint(latitude, longitude)
  },
  // 用户点击重新定位按钮，根据wx.chooseLocation() 获取指定位置
  async chooseLocation() {
    const { latitude, longitude } = await wx.chooseLocation()
    console.log(latitude, longitude, '指定位置的经纬度');
    this.getPoint(latitude, longitude)
  },
  // 根据经纬度获取位置信息
  getPoint(latitude, longitude) {
    // 根据经纬度查询当前位置相关信息，(逆地址解析)
    qqMap.reverseGeocoder({
      location: [latitude, longitude].join(','),
      success: ({ result: { address } }) => {
        // 结果为当前所在的地址
        console.log(address, '获取的当前位置相关信息');
        this.setData({ address })
      }
    })
    // 根据经纬度查询当前位置周边的搜索的关键子信息 -- 地点搜索
    qqMap.search({
      // 搜索关键字
      keyword: '小区',
      // 指定经纬度
      location: [latitude, longitude].join(','),
      // 查询数据条数
      page_size: 5,
      success: (res) => {
        // 处理得到的地点信息（过滤掉多余的数据）
        const points = []
        res.data.forEach(({ id, title }) => {
          points.push({ id, title })
        })
        // 更新数据，重新渲染
        this.setData({ points })
      },
      fail() {
        wx.utils.toast('没有找附近的小区！')
      },
      complete: () => {
        // 隐藏加载状态
        wx.hideLoading()
      }
    })
  }
})